package day12;
/*
 * 面向对象特征三 多态性
 * 
 * 理解多态性：可以理解为一个事物的多种形态
 * 
 * 1.理解多态性，可以理解为一个事物的多种形态。
 * 2.何为多态性：
 * 		对象的多态性：父类引用指向子类的对象(或子类对象赋给父类的引用)
 * 3. 多态的使用，虚拟方法调用
 * 		有了对象的多态性以后，我们在编译期，只能调用父类中声明的方法，但运行期，我们实际执行的是子类重写父类的方法、
 * 		总结： 编译，看左边，运行，看右边。
 * 
 * 4.多态性的使用前提：① 继承的多态性  ② 方法的重写
 * 
 * 5.对象的多态性，只使用与方法，不适用于属性（编译和运行都看）
 */
public class PersonTest2 {
	public static void main(String[] args) {
		Person p1 = new Person();
		p1.eat();
		Man man = new Man();
		man.eat();
		man.age = 25;
		man.earnMoney();
		System.out.println("******************************");
		// 对象多态性，父类的引用指向子类的对象
		Person p2 = new Man();
//		Person p3 = new Woman();
		// 多态的使用，当调用子父类同名同参数的方法时，实际执行的是子类重写父类的方法 --- 虚拟方法调用
//		p2.eat();
		p2.walk();
		// 无法调用子类特有的
//		p2.earnMoney();
		
		
		
	}
	
	
}
